﻿#ifndef FITKVAONEHDF5ADAPTORSIF_H
#define FITKVAONEHDF5ADAPTORSIF_H

#include "FITKVAOneHDF5IOAPI.h"
#include "FITKVAOneHDF5AbstractAdaptor.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"

namespace IO
{
    class FITKVAOneHDF5IO_API FITKVAOneHDF5AdaptorSIF : public FITKVAOneHDF5AbstractAdaptor
    {
        FITKCLASS(IO, FITKVAOneHDF5AdaptorSIF);
    public:

        /**
         * @brief   Construct a new FITKVAOneHDF5AdaptorSIF object
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-27 
         */
        explicit FITKVAOneHDF5AdaptorSIF() = default;

        /**
         * @brief   Destroy the FITKVAOneHDF5AdaptorSIF object
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-27 
         */
        virtual ~FITKVAOneHDF5AdaptorSIF() = default;

        /**
         * @brief   适配器读数据
         * @return  是否执行成功
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-27 
         */
        bool adaptR() override;

        /**
         * @brief   适配器写数据
         * @return  是否执行成功
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-27 
         */
        bool adaptW() override;

    protected:

        /**
         * @brief   读取数据集信息
         * @return  读取成功状态
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-27 
         */
        bool readDataSet();

    };
    Register2FITKIOAdaptorFactory(VAOneHDF5PostData, Acoustics::FITKAcousticsHDF5SIF, FITKVAOneHDF5AdaptorSIF)

}
#endif // FITKVAONEHDF5ADAPTORSIFS_H
